package com.jilefojing.dao;

import java.util.List;

import com.jilefojing.beans.enums.ThirdPartyTypeEnum;
import com.jilefojing.beans.enums.foruser.StatusEnumForUser;
import com.jilefojing.beans.exception.UserContextException;
import com.jilefojing.beans.pojos.User;
import com.jilefojing.beans.vo.Pagination;
import com.jilefojing.dao.base.IBaseDao;

/**
 * 
 * @author jgshun
 * 
 */
public interface IUserDao extends IBaseDao<User> {

	/**
	 * 查询分页数据
	 * 
	 * @param statuses
	 *            为空查询全部
	 * @param pagination
	 * @return
	 */
	Pagination<User> getPagination(List<StatusEnumForUser> statuses, Pagination<User> pagination);

	/**
	 * 通过账户获取用户
	 * 
	 * @param account
	 *            账户:手机号 邮箱
	 */
	User getUserByAccount(String account) throws UserContextException;

	/**
	 * 通过id列表查询用户信息
	 * 
	 * @param ids
	 * @return
	 */
	List<User> getByIds(List<Long> ids);

	User getUserByThirdParty(String thirdPartyId, ThirdPartyTypeEnum thirdPartyType);

}
